package org.yaac.server.delegate;

import java.util.Set;

import com.google.appengine.api.users.User;

/**
 * it is not sure that GAE UserService can be used as singleton
 * 
 * @author Max Zhu (thebbsky@gmail.com)
 *
 */
public interface UserServiceDelegate {

	/**
	 * @param arg0
	 * @param arg1
	 * @param arg2
	 * @param arg3
	 * @return
	 */
	String createLoginURL(String arg0, String arg1, String arg2, Set<String> arg3);

	/**
	 * @param arg0
	 * @param arg1
	 * @return
	 */
	String createLoginURL(String arg0, String arg1);

	/**
	 * @param arg0
	 * @return
	 */
	String createLoginURL(String arg0);

	/**
	 * @param arg0
	 * @param arg1
	 * @return
	 */
	String createLogoutURL(String arg0, String arg1);

	/**
	 * @param arg0
	 * @return
	 */
	String createLogoutURL(String arg0);

	/**
	 * @return
	 */
	User getCurrentUser();

	/**
	 * @return
	 */
	boolean isUserAdmin();

	/**
	 * @return
	 */
	boolean isUserLoggedIn();

}